/*******************************************************************************
* Copyright (c) 2013 Aroma1997.
* All rights reserved. This program and other files related to this program are
* licensed with a extended GNU General Public License v. 3
* License informations are at:
* https://github.com/Aroma1997/CompactWindmills/blob/master/license.txt
******************************************************************************/
package aroma1997.compactwindmills;
import org.apache.logging.log4j.Level;
import com.google.common.base.Throwables;
/**
*
* @author Aroma1997
*
*/
public enum WindType {
ELV(8, TileEntityWindmill.class, 3),
LV(32, TileEntityLV.class, 6),
MV(128, TileEntityMV.class, 8),
HV(512, TileEntityHV.class, 10),
EV(2048, TileEntityEV.class, 12);
public static TileEntityWindmill makeTileEntity(int metadata) {
try {
TileEntityWindmill tileEntity = values()[metadata].claSS.newInstance();
return tileEntity;
}
catch (Exception e) {
CompactWindmills.instance.windMillLog.log(Level.WARN, "Failed to Register Windmill: "
+ WindType.values()[metadata].name());
throw Throwables.propagate(e);
}
}
public int output;
public Class<? extends TileEntityWindmill> claSS;
public int checkRadius;
private WindType(int output,
Class<? extends TileEntityWindmill> claSS, int checkRadius) {
this.output = output;
this.claSS = claSS;
this.checkRadius = checkRadius;
}
public String tileEntityName() {
return "WindType." + name();
}
public String getUnlocalizedName() {
return "tile.compactwindmills:windmill.name." + name();
}
}